home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / JTabbedPane.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  12.1 KB  |  519 lines

  1. package javax.swing;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Container;
  6. import java.awt.Rectangle;
  7. import java.awt.event.MouseEvent;
  8. import java.io.IOException;
  9. import java.io.ObjectOutputStream;
  10. import java.io.Serializable;
  11. import java.util.Vector;
  12. import javax.accessibility.Accessible;
  13. import javax.accessibility.AccessibleContext;
  14. import javax.accessibility.AccessibleState;
  15. import javax.swing.event.ChangeEvent;
  16. import javax.swing.event.ChangeListener;
  17. import javax.swing.plaf.TabbedPaneUI;
  18.  
  19. public class JTabbedPane extends JComponent implements Serializable, Accessible, SwingConstants {
  20.    private static final String uiClassID = "TabbedPaneUI";
  21.    protected int tabPlacement;
  22.    protected SingleSelectionModel model;
  23.    private boolean haveRegistered;
  24.    protected ChangeListener changeListener;
  25.    Vector pages;
  26.    protected transient ChangeEvent changeEvent;
  27.    // $FF: synthetic field
  28.    static Class class$javax$swing$event$ChangeListener;
  29.  
  30.    public JTabbedPane() {
  31.       this(1);
  32.    }
  33.  
  34.    public JTabbedPane(int var1) {
  35.       this.tabPlacement = 1;
  36.       this.changeListener = null;
  37.       this.changeEvent = null;
  38.       this.setTabPlacement(var1);
  39.       this.pages = new Vector(1);
  40.       this.setModel(new DefaultSingleSelectionModel());
  41.       this.updateUI();
  42.    }
  43.  
  44.    public Component add(Component var1) {
  45.       this.addTab(var1.getName(), var1);
  46.       return var1;
  47.    }
  48.  
  49.    public Component add(Component var1, int var2) {
  50.       this.insertTab(var1.getName(), (Icon)null, var1, (String)null, var2);
  51.       return var1;
  52.    }
  53.  
  54.    public void add(Component var1, Object var2) {
  55.       if (var2 instanceof String) {
  56.          this.addTab((String)var2, var1);
  57.       } else if (var2 instanceof Icon) {
  58.          this.addTab((String)null, (Icon)var2, var1);
  59.       } else {
  60.          this.add(var1);
  61.       }
  62.  
  63.    }
  64.  
  65.    public void add(Component var1, Object var2, int var3) {
  66.       Icon var4 = var2 instanceof Icon ? (Icon)var2 : null;
  67.       String var5 = var2 instanceof String ? (String)var2 : null;
  68.       this.insertTab(var5, var4, var1, (String)null, var3);
  69.    }
  70.  
  71.    public Component add(String var1, Component var2) {
  72.       this.addTab(var1, var2);
  73.       return var2;
  74.    }
  75.  
  76.    public void addChangeListener(ChangeListener var1) {
  77.       super.listenerList.add(class$javax$swing$event$ChangeListener != null ? class$javax$swing$event$ChangeListener : (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")), var1);
  78.    }
  79.  
  80.    public void addTab(String var1, Component var2) {
  81.       this.insertTab(var1, (Icon)null, var2, (String)null, this.pages.size());
  82.    }
  83.  
  84.    public void addTab(String var1, Icon var2, Component var3) {
  85.       this.insertTab(var1, var2, var3, (String)null, this.pages.size());
  86.    }
  87.  
  88.    public void addTab(String var1, Icon var2, Component var3, String var4) {
  89.       this.insertTab(var1, var2, var3, var4, this.pages.size());
  90.    }
  91.  
  92.    // $FF: synthetic method
  93.    static Class class$(String var0) {
  94.       try {
  95.          return Class.forName(var0);
  96.       } catch (ClassNotFoundException var2) {
  97.          throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  98.       }
  99.    }
  100.  
  101.    protected ChangeListener createChangeListener() {
  102.       return new ModelListener(this);
  103.    }
  104.  
  105.    protected void fireStateChanged() {
  106.       Object[] var1 = super.listenerList.getListenerList();
  107.  
  108.       for(int var2 = var1.length - 2; var2 >= 0; var2 -= 2) {
  109.          if (var1[var2] == (class$javax$swing$event$ChangeListener != null ? class$javax$swing$event$ChangeListener : (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")))) {
  110.             if (this.changeEvent == null) {
  111.                this.changeEvent = new ChangeEvent(this);
  112.             }
  113.  
  114.             ((ChangeListener)var1[var2 + 1]).stateChanged(this.changeEvent);
  115.          }
  116.       }
  117.  
  118.    }
  119.  
  120.    public AccessibleContext getAccessibleContext() {
  121.       if (super.accessibleContext == null) {
  122.          super.accessibleContext = new AccessibleJTabbedPane(this);
  123.       }
  124.  
  125.       return super.accessibleContext;
  126.    }
  127.  
  128.    public Color getBackgroundAt(int var1) {
  129.       return ((Page)this.pages.elementAt(var1)).getBackground();
  130.    }
  131.  
  132.    public Rectangle getBoundsAt(int var1) {
  133.       return super.ui != null ? ((TabbedPaneUI)super.ui).getTabBounds(this, var1) : null;
  134.    }
  135.  
  136.    public Component getComponentAt(int var1) {
  137.       return ((Page)this.pages.elementAt(var1)).component;
  138.    }
  139.  
  140.    public Icon getDisabledIconAt(int var1) {
  141.       return ((Page)this.pages.elementAt(var1)).disabledIcon;
  142.    }
  143.  
  144.    public Color getForegroundAt(int var1) {
  145.       return ((Page)this.pages.elementAt(var1)).getForeground();
  146.    }
  147.  
  148.    public Icon getIconAt(int var1) {
  149.       return ((Page)this.pages.elementAt(var1)).icon;
  150.    }
  151.  
  152.    public SingleSelectionModel getModel() {
  153.       return this.model;
  154.    }
  155.  
  156.    public Component getSelectedComponent() {
  157.       int var1 = this.getSelectedIndex();
  158.       return var1 == -1 ? null : this.getComponentAt(var1);
  159.    }
  160.  
  161.    public int getSelectedIndex() {
  162.       return this.model.getSelectedIndex();
  163.    }
  164.  
  165.    public int getTabCount() {
  166.       return this.pages.size();
  167.    }
  168.  
  169.    public int getTabPlacement() {
  170.       return this.tabPlacement;
  171.    }
  172.  
  173.    public int getTabRunCount() {
  174.       return super.ui != null ? ((TabbedPaneUI)super.ui).getTabRunCount(this) : 0;
  175.    }
  176.  
  177.    public String getTitleAt(int var1) {
  178.       return ((Page)this.pages.elementAt(var1)).title;
  179.    }
  180.  
  181.    public String getToolTipText(MouseEvent var1) {
  182.       if (super.ui != null) {
  183.          int var2 = ((TabbedPaneUI)super.ui).tabForCoordinate(this, var1.getX(), var1.getY());
  184.          if (var2 != -1) {
  185.             return ((Page)this.pages.elementAt(var2)).tip;
  186.          }
  187.       }
  188.  
  189.       return super.getToolTipText(var1);
  190.    }
  191.  
  192.    public TabbedPaneUI getUI() {
  193.       return (TabbedPaneUI)super.ui;
  194.    }
  195.  
  196.    public String getUIClassID() {
  197.       return "TabbedPaneUI";
  198.    }
  199.  
  200.    public int indexOfComponent(Component var1) {
  201.       for(int var2 = 0; var2 < this.getTabCount(); ++var2) {
  202.          Component var3 = this.getComponentAt(var2);
  203.          if (var3 != null) {
  204.             if (var3.equals(var1)) {
  205.                return var2;
  206.             }
  207.          } else if (var3 == var1) {
  208.             return var2;
  209.          }
  210.       }
  211.  
  212.       return -1;
  213.    }
  214.  
  215.    public int indexOfTab(String var1) {
  216.       for(int var2 = 0; var2 < this.getTabCount(); ++var2) {
  217.          if (this.getTitleAt(var2).equals(var1 == null ? "" : var1)) {
  218.             return var2;
  219.          }
  220.       }
  221.  
  222.       return -1;
  223.    }
  224.  
  225.    public int indexOfTab(Icon var1) {
  226.       for(int var2 = 0; var2 < this.getTabCount(); ++var2) {
  227.          if (this.getIconAt(var2).equals(var1)) {
  228.             return var2;
  229.          }
  230.       }
  231.  
  232.       return -1;
  233.    }
  234.  
  235.    public void insertTab(String var1, Icon var2, Component var3, String var4, int var5) {
  236.       ImageIcon var6 = null;
  237.       if (var2 != null && var2 instanceof ImageIcon) {
  238.          var6 = new ImageIcon(GrayFilter.createDisabledImage(((ImageIcon)var2).getImage()));
  239.       }
  240.  
  241.       int var7;
  242.       if (var3 != null && (var7 = this.indexOfComponent(var3)) != -1) {
  243.          this.removeTabAt(var7);
  244.       }
  245.  
  246.       this.pages.insertElementAt(new Page(this, this, var1 != null ? var1 : "", var2, var6, var3, var4), var5);
  247.       if (var3 != null) {
  248.          var3.setVisible(false);
  249.          ((Container)this).addImpl(var3, (Object)null, -1);
  250.       }
  251.  
  252.       if (this.pages.size() == 1) {
  253.          this.setSelectedIndex(0);
  254.       }
  255.  
  256.       if (!this.haveRegistered && var4 != null) {
  257.          ToolTipManager.sharedInstance().registerComponent(this);
  258.          this.haveRegistered = true;
  259.       }
  260.  
  261.       if (super.accessibleContext != null) {
  262.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", (Object)null, var3);
  263.       }
  264.  
  265.       ((JComponent)this).revalidate();
  266.       ((Component)this).repaint();
  267.    }
  268.  
  269.    public boolean isEnabledAt(int var1) {
  270.       return ((Page)this.pages.elementAt(var1)).isEnabled();
  271.    }
  272.  
  273.    protected String paramString() {
  274.       String var1;
  275.       if (this.tabPlacement == 1) {
  276.          var1 = "TOP";
  277.       } else if (this.tabPlacement == 3) {
  278.          var1 = "BOTTOM";
  279.       } else if (this.tabPlacement == 2) {
  280.          var1 = "LEFT";
  281.       } else if (this.tabPlacement == 4) {
  282.          var1 = "RIGHT";
  283.       } else {
  284.          var1 = "";
  285.       }
  286.  
  287.       String var2 = this.haveRegistered ? "true" : "false";
  288.       return super.paramString() + ",haveRegistered=" + var2 + ",tabPlacement=" + var1;
  289.    }
  290.  
  291.    public void remove(Component var1) {
  292.       int var2 = this.indexOfComponent(var1);
  293.       if (var2 != -1) {
  294.          this.removeTabAt(var2);
  295.       }
  296.  
  297.    }
  298.  
  299.    public void removeAll() {
  300.       this.setSelectedIndex(-1);
  301.       int var1 = this.getTabCount();
  302.  
  303.       for(int var2 = 0; var2 < var1; ++var2) {
  304.          Component var3 = this.getComponentAt(var2);
  305.          if (super.accessibleContext != null) {
  306.             super.accessibleContext.firePropertyChange("AccessibleVisibleData", var3, (Object)null);
  307.          }
  308.       }
  309.  
  310.       super.removeAll();
  311.       this.pages.removeAllElements();
  312.       ((JComponent)this).revalidate();
  313.       ((Component)this).repaint();
  314.    }
  315.  
  316.    public void removeChangeListener(ChangeListener var1) {
  317.       super.listenerList.remove(class$javax$swing$event$ChangeListener != null ? class$javax$swing$event$ChangeListener : (class$javax$swing$event$ChangeListener = class$("javax.swing.event.ChangeListener")), var1);
  318.    }
  319.  
  320.    public void removeTabAt(int var1) {
  321.       int var2 = this.getTabCount();
  322.       int var3 = this.getSelectedIndex();
  323.       if (var3 >= var2 - 1) {
  324.          this.setSelectedIndex(var3 - 1);
  325.       }
  326.  
  327.       Component var4 = this.getComponentAt(var1);
  328.       if (super.accessibleContext != null) {
  329.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var4, (Object)null);
  330.       }
  331.  
  332.       if (var4 != null) {
  333.          super.remove(var4);
  334.          var4.setVisible(true);
  335.       }
  336.  
  337.       this.pages.removeElementAt(var1);
  338.       ((JComponent)this).revalidate();
  339.       ((Component)this).repaint();
  340.    }
  341.  
  342.    public void setBackgroundAt(int var1, Color var2) {
  343.       Color var3 = ((Page)this.pages.elementAt(var1)).background;
  344.       ((Page)this.pages.elementAt(var1)).setBackground(var2);
  345.       if (var2 == null || var3 == null || !var2.equals(var3)) {
  346.          Rectangle var4 = this.getBoundsAt(var1);
  347.          if (var4 != null) {
  348.             ((JComponent)this).repaint(var4);
  349.          }
  350.       }
  351.  
  352.    }
  353.  
  354.    public void setComponentAt(int var1, Component var2) {
  355.       Page var3 = (Page)this.pages.elementAt(var1);
  356.       if (var2 != var3.component) {
  357.          if (var3.component != null) {
  358.             Object var4 = ((Component)this).getTreeLock();
  359.             synchronized(var4){}
  360.  
  361.             try {
  362.                int var6 = ((Container)this).getComponentCount();
  363.                Component[] var7 = ((Container)this).getComponents();
  364.  
  365.                for(int var8 = 0; var8 < var6; ++var8) {
  366.                   if (var7[var8] == var3.component) {
  367.                      ((Container)this).remove(var8);
  368.                   }
  369.                }
  370.             } catch (Throwable var10) {
  371.                throw var10;
  372.             }
  373.          }
  374.  
  375.          var3.component = var2;
  376.          var2.setVisible(this.getSelectedIndex() == var1);
  377.          ((Container)this).addImpl(var2, (Object)null, -1);
  378.          ((JComponent)this).revalidate();
  379.       }
  380.  
  381.    }
  382.  
  383.    public void setDisabledIconAt(int var1, Icon var2) {
  384.       Icon var3 = ((Page)this.pages.elementAt(var1)).disabledIcon;
  385.       ((Page)this.pages.elementAt(var1)).disabledIcon = var2;
  386.       if (var2 != var3 && !this.isEnabledAt(var1)) {
  387.          ((JComponent)this).revalidate();
  388.          ((Component)this).repaint();
  389.       }
  390.  
  391.    }
  392.  
  393.    public void setEnabledAt(int var1, boolean var2) {
  394.       boolean var3 = ((Page)this.pages.elementAt(var1)).isEnabled();
  395.       ((Page)this.pages.elementAt(var1)).setEnabled(var2);
  396.       if (var2 != var3) {
  397.          ((JComponent)this).repaint(this.getBoundsAt(var1));
  398.       }
  399.  
  400.    }
  401.  
  402.    public void setForegroundAt(int var1, Color var2) {
  403.       Color var3 = ((Page)this.pages.elementAt(var1)).foreground;
  404.       ((Page)this.pages.elementAt(var1)).setForeground(var2);
  405.       if (var2 == null || var3 == null || !var2.equals(var3)) {
  406.          Rectangle var4 = this.getBoundsAt(var1);
  407.          if (var4 != null) {
  408.             ((JComponent)this).repaint(var4);
  409.          }
  410.       }
  411.  
  412.    }
  413.  
  414.    public void setIconAt(int var1, Icon var2) {
  415.       Icon var3 = ((Page)this.pages.elementAt(var1)).icon;
  416.       ((Page)this.pages.elementAt(var1)).icon = var2;
  417.       AccessibleContext var4 = this.getAccessibleContext();
  418.       if (var3 != var2 && super.accessibleContext != null) {
  419.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var3, var2);
  420.       }
  421.  
  422.       if (var2 != var3) {
  423.          ((JComponent)this).revalidate();
  424.          ((Component)this).repaint();
  425.       }
  426.  
  427.    }
  428.  
  429.    public void setModel(SingleSelectionModel var1) {
  430.       SingleSelectionModel var2 = this.getModel();
  431.       if (var2 != null) {
  432.          var2.removeChangeListener(this.changeListener);
  433.          this.changeListener = null;
  434.       }
  435.  
  436.       this.model = var1;
  437.       if (var1 != null) {
  438.          this.changeListener = this.createChangeListener();
  439.          var1.addChangeListener(this.changeListener);
  440.       }
  441.  
  442.       ((JComponent)this).firePropertyChange("model", var2, var1);
  443.       ((Component)this).repaint();
  444.    }
  445.  
  446.    public void setSelectedComponent(Component var1) {
  447.       int var2 = this.indexOfComponent(var1);
  448.       if (var2 != -1) {
  449.          this.setSelectedIndex(var2);
  450.       } else {
  451.          throw new IllegalArgumentException("component not found in tabbed pane");
  452.       }
  453.    }
  454.  
  455.    public void setSelectedIndex(int var1) {
  456.       int var2 = this.model.getSelectedIndex();
  457.       this.model.setSelectedIndex(var1);
  458.       if (var2 >= 0 && var2 != var1) {
  459.          Page var3 = (Page)this.pages.elementAt(var2);
  460.          if (super.accessibleContext != null) {
  461.             super.accessibleContext.firePropertyChange("AccessibleState", AccessibleState.SELECTED, (Object)null);
  462.          }
  463.       }
  464.  
  465.       if (var1 >= 0 && var2 != var1) {
  466.          Page var4 = (Page)this.pages.elementAt(var1);
  467.          if (super.accessibleContext != null) {
  468.             super.accessibleContext.firePropertyChange("AccessibleState", (Object)null, AccessibleState.SELECTED);
  469.          }
  470.       }
  471.  
  472.    }
  473.  
  474.    public void setTabPlacement(int var1) {
  475.       if (var1 != 1 && var1 != 2 && var1 != 3 && var1 != 4) {
  476.          throw new IllegalArgumentException("illegal tab placement: must be TOP, BOTTOM, LEFT, or RIGHT");
  477.       } else {
  478.          if (this.tabPlacement != var1) {
  479.             int var2 = this.tabPlacement;
  480.             this.tabPlacement = var1;
  481.             ((JComponent)this).firePropertyChange("tabPlacement", var2, var1);
  482.             ((JComponent)this).revalidate();
  483.             ((Component)this).repaint();
  484.          }
  485.  
  486.       }
  487.    }
  488.  
  489.    public void setTitleAt(int var1, String var2) {
  490.       String var3 = ((Page)this.pages.elementAt(var1)).title;
  491.       ((Page)this.pages.elementAt(var1)).title = var2;
  492.       if (var3 != var2 && super.accessibleContext != null) {
  493.          super.accessibleContext.firePropertyChange("AccessibleVisibleData", var3, var2);
  494.       }
  495.  
  496.       if (var2 == null || var3 == null || !var2.equals(var3)) {
  497.          ((JComponent)this).revalidate();
  498.          ((Component)this).repaint();
  499.       }
  500.  
  501.    }
  502.  
  503.    public void setUI(TabbedPaneUI var1) {
  504.       super.setUI(var1);
  505.    }
  506.  
  507.    public void updateUI() {
  508.       this.setUI((TabbedPaneUI)UIManager.getUI(this));
  509.    }
  510.  
  511.    private void writeObject(ObjectOutputStream var1) throws IOException {
  512.       var1.defaultWriteObject();
  513.       if (super.ui != null && this.getUIClassID().equals("TabbedPaneUI")) {
  514.          super.ui.installUI(this);
  515.       }
  516.  
  517.    }
  518. }
  519.